package br.edu.unifei.cct720.trabalho06.model.formas;

/**
 * Classe responsavel por representar
 * a borda de uma forma geometrica
 * 
 * @author fknappe
 *
 */
public class Borda {

	// Declaracao das variaveis de instancia
	private int y;
	private double x;
	private double mInverso;
	private boolean troca;

	/**
	 * Construtor 
	 * 
	 * @param int y
	 * @param double x
	 * @param double m
	 */
	public Borda(int y, double x, double m) {
		this.y = y;
		this.x = x;
		this.mInverso = m;
	}

	/**
	 * Metodo responsavel por setar
	 * os valores da borda para o proximo
	 * passo do scanline
	 * 
	 * @param passo
	 * 
	 * @return void
	 */
	public void trocaScanline(int passo) {
		x = x + passo * mInverso;
		troca = false;
	}
	
	/**
	 * Metodo responsavel por retornar
	 * um clone deste objeto
	 * 
	 * @return void
	 */
	public Borda clone() {
		Borda estruturaBorda = new Borda(y, x, mInverso);
		return estruturaBorda;
	}

	// Metodos getteres e setters
	public double getMInverso() {
		return mInverso;
	}

	public void setMInverso(double mInverso) {
		this.mInverso = mInverso;
	}

	public boolean isTroca() {
		return troca;
	}

	public void setTroca(boolean troca) {
		this.troca = troca;
	}

	public double getX() {
		return x;
	}

	public void setX(double x) {
		this.x = x;
	}

	public int getY() {
		return y;
	}

	public void setY(int y) {
		this.y = y;
	}
}
